home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Auge 4000
/
Auge 4000 #44 (1990-05-04)(Amiga User Gruppe Einzugsgebiet 4000).zip
/
Auge 4000 #44 (1990-05-04)(Amiga User Gruppe Einzugsgebiet 4000).adf
/
Unterhaltung
/
Sondensuche
/
Sondensuche
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1990-05-01
|
8KB
|
253 lines
REM *********************
REM * *
REM * Sondensuche *
REM * *
REM * (C) 02/1990 *
REM * *
REM * AMIGA-Basic *
REM * *
REM *********************
CLEAR ,30000
SCREEN 2,320,250,3,1
WINDOW 2,"SONDENSUCHE by Manfred Polzin,AUGE 4000",,16,2
DECLARE FUNCTION OpenDiskFont& LIBRARY
DECLARE FUNCTION CloseFont& LIBRARY
DECLARE FUNCTION SetFont& LIBRARY
LIBRARY"diskfont.library"
LIBRARY"graphics.library"
LoadFont"asc ii/8"
LIBRARY CLOSE
OPEN"Cursor1" FOR INPUT AS 1
OBJECT.SHAPE 1,INPUT$(LOF(1),1):CLOSE 1
OPEN"Cursor2" FOR INPUT AS 1
OBJECT.SHAPE 2,INPUT$(LOF(1),1):CLOSE 1
OPEN"Cursor3" FOR INPUT AS 1
OBJECT.SHAPE 3,INPUT$(LOF(1),1):CLOSE 1
OPEN"Cursor4" FOR INPUT AS 1
OBJECT.SHAPE 4,INPUT$(LOF(1),1):CLOSE 1
Spielbeginn:
COLOR 0,0:CLS:COLOR 1,0
LOCATE 5,6:PRINT"Wieviele"
LOCATE 7,6:PRINT"Spieler [1 bis 4]?":Spieler=1
Abfrage:
ta$=INKEY$:IF ta$=CHR$(13) THEN Weiter
IF ta$=CHR$(32) THEN CALL Pause:Spieler=Spieler+1
IF Spieler>4 THEN Spieler=1
LOCATE 7,26:PRINT USING"#";Spieler
GOTO Abfrage
Weiter:
LOCATE 11,6:PRINT"Bitte Name[n] eingeben"
LOCATE 12,6:PRINT" [max. 8 Zeichen]"
FOR i=1 TO Spieler
Eingabe:
LOCATE 12+i*2,6:PRINT"Name"+STR$(i):LOCATE 12+i*2,12:INPUT Vorname$(i)
IF LEN(Vorname$(i))>8 THEN Eingabe
NEXT i
COLOR 2,2:CLS:COLOR 2,6
LOCATE 5,7:PRINT" ( ( ( ( ( ( ( ( ( "
FOR i=6 TO 27 STEP 3:LOCATE i,7:PRINT"+ $& $& $& $& $& $& $& $& )":NEXT i
FOR i=7 TO 25 STEP 3:LOCATE i,7:PRINT" %@-%@-%@-%@-%@-%@-%@-%@-% ":NEXT i
FOR i=8 TO 26 STEP 3:LOCATE i,7:PRINT" #-@#-@#-@#-@#-@#-@#-@#-@# ":NEXT i
LOCATE 28,7:PRINT" * * * * * * * * * "
FOR i=1 TO Spieler
FOR j=1 TO 8:FOR k=1 TO 9:kd(i,j,k)=ASC(CHR$(32)):NEXT k:NEXT j
FOR w=1 TO 4
Zufall:
RANDOMIZE TIMER:j=INT(RND*8)+1:k=INT(RND*9)+1:IF kd(i,j,k)=ASC(CHR$(143)) THEN Zufall
kd(i,j,k)=143
NEXT w:NEXT i
l=5:m=5:FOR i=1 TO Spieler:p(i)=0:x(i)=148:y(i)=132:s(i)=5:t(i)=5:NEXT i
Anfang:
FOR i=1 TO Spieler
GOSUB Verteilen
SOUND 350,2,255
COLOR 2,2:LOCATE 3,7:PRINT SPACE$(28)
COLOR 1,2:LOCATE 3,7:PRINT Vorname$(i)+",du bist jetzt dran!"
Schleife:
OBJECT.X i,x(i):OBJECT.Y i,y(i):OBJECT.STOP
ri1=STICK(2):ri2=STICK(3):kn=STRIG(2)
IF kn=-1 THEN Naechste
IF ri1=1 THEN Rechts
IF ri1=-1 THEN Links
IF ri2=1 THEN Unten
IF ri2=-1 THEN Oben
FOR d=1 TO 150:NEXT d:OBJECT.OFF i:FOR d=1 TO 150:NEXT d:OBJECT.ON i:OBJECT.STOP
GOTO Schleife
Rechts:
x(i)=x(i)+24:IF x(i)>244 THEN x(i)=244
t(i)=t(i)+1:IF t(i)>9 THEN t(i)=9
m=ti(i):CALL Pause:GOTO Schleife
Links:
x(i)=x(i)-24:IF x(i)<52 THEN x(i)=52
t(i)=t(i)-1:IF t(i)<1 THEN t(i)=1
m=t(i):CALL Pause:GOTO Schleife
Unten:
y(i)=y(i)+24:IF y(i)>204 THEN y(i)=204
s(i)=s(i)+1:IF s(i)>8 THEN s(i)=8
l=s(i):CALL Pause:GOTO Schleife
Oben:
y(i)=y(i)-24:IF y(i)<36 THEN y(i)=36
s(i)=s(i)-1:IF s(i)<1 THEN s(i)=1
l=s(i):CALL Pause:GOTO Schleife
Naechste:
so(i)=0:r=0
symb=kd(i,s(i),t(i))
IF symb>47 AND symb<53 OR symb=142 THEN SOUND 330,2,255:GOTO Schleife
l=s(i):m=t(i)
Zurueck1:
symb=kd(i,l,m)
IF symb=143 AND r=0 THEN OBJECT.OFF i:GOSUB Treffer:GOTO Ueberpruefung
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck2
r=r+1:m=m+1:IF m<10 THEN Zurueck1
l=s(i):m=t(i)
Zurueck2:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck3
l=l+1:m=m+1:IF l<9 AND m<10 THEN Zurueck2
l=s(i):m=t(i)
Zurueck3:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck4
l=l+1:IF l<9 THEN Zurueck3
l=s(i):m=t(i)
Zurueck4:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck5
l=l+1:m=m-1:IF l<9 AND m>0 THEN Zurueck4
l=s(i):m=t(i)
Zurueck5:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck6
m=m-1:IF m>0 THEN Zurueck5
l=s(i):m=t(i)
Zurueck6:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck7
l=l-1:m=m-1:IF l>0 AND m>0 THEN Zurueck6
l=s(i):m=t(i)
Zurueck7:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Zurueck8
l=l-1:IF l>0 THEN Zurueck7
l=s(i):m=t(i)
Zurueck8:
symb=kd(i,l,m)
IF symb=142 OR symb=143 THEN so(i)=so(i)+1:l=s(i):m=t(i):GOTO Sonden
l=l-1:m=m+1:IF l>0 AND m<10 THEN Zurueck8
l=s(i):m=t(i)
Sonden:
kd(i,l,m)=so(i)+48
OBJECT.OFF i:COLOR 2,6
IF so(i)=0 THEN GOSUB Nullen
SOUND 200*i,2,255:LOCATE s(i)*3+3,t(i)*3+5:PRINT USING"#";so(i)
Ueberpruefung:
IF p(i)=4 THEN Ende
NEXT i
GOTO Anfang
Treffer:
p(i)=p(i)+1
FOR w1=1 TO 3
FOR j1=220 TO 560 STEP 20:SOUND j1,1,255:NEXT j1
FOR j1=560 TO 220 STEP -20:SOUND j1,1,255:NEXT j1
NEXT w1
COLOR 5,6
LOCATE s(i)*3+3,t(i)*3+5:PRINT CHR$(142):kd(i,s(i),t(i))=142
RETURN
Nullen:
Return1:
m=m+1:IF m<10 THEN symb=ASC(CHR$(kd(i,l,m)))
IF m<10 AND symb>47 AND symb<53 THEN Return1
IF m<10 THEN GOSUB Schwarze:GOTO Return1
l=s(i):m=t(i)
Return2:
l=l+1:m=m+1:IF l<9 AND m<10 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l<9 AND m<10 AND symb>47 AND symb<53 THEN Return2
IF l<9 AND m<10 THEN GOSUB Schwarze:GOTO Return2
l=s(i):m=t(i)
Return3:
l=l+1:IF l<9 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l<9 AND symb>47 AND symb<53 THEN Return3
IF l<9 THEN GOSUB Schwarze:GOTO Return3
l=s(i):m=t(i)
Return4:
l=l+1:m=m-1:IF l<9 AND m>0 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l<9 AND m>0 AND symb>47 AND symb<53 THEN Return4
IF l<9 AND m>0 THEN GOSUB Schwarze:GOTO Return4
l=s(i):m=t(i)
Return5:
m=m-1:IF m>0 THEN symb=ASC(CHR$(kd(i,l,m)))
IF m>0 AND symb>47 AND symb<53 THEN Return5
IF m>0 THEN GOSUB Schwarze:GOTO Return5
l=s(i):m=t(i)
Return6:
l=l-1:m=m-1:IF l>0 AND m>0 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l>0 AND m>0 AND symb>47 AND symb<53 THEN Return6
IF l>0 AND m>0 THEN GOSUB Schwarze:GOTO Return6
l=s(i):m=t(i)
Return7:
l=l-1:IF l>0 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l>0 AND symb>47 AND symb<53 THEN Return7
IF l>0 THEN GOSUB Schwarze:GOTO Return7
l=s(i):m=t(i)
Return8:
l=l-1:m=m+1:IF l>0 AND m<10 THEN symb=ASC(CHR$(kd(i,l,m)))
IF l>0 AND m<10 AND symb>47 AND symb<53 THEN Return8
IF l>0 AND m<10 THEN GOSUB Schwarze:GOTO Return8
RETURN
Schwarze:
kd(i,l,m)=128:RETURN
Verteilen:
FOR j=1 TO 8:FOR k=1 TO 9:COLOR 2,6
LOCATE j*3+3,k*3+5
IF kd(i,j,k)=142 THEN COLOR 5,6
PRINT CHR$(kd(i,j,k))
NEXT k:NEXT j:RETURN
Ende:
FOR i=1 TO Spieler:OBJECT.OFF i:NEXT i
FOR i=1 TO Spieler
COLOR 2,2:LOCATE 3,7:PRINT SPACE$(28)
COLOR 1,2:LOCATE 3,7:PRINT "Auflösung von "+Vorname$(i)
COLOR 2,6
FOR j=1 TO 8:FOR k=1 TO 9:COLOR 2,6
LOCATE j*3+3,k*3+5
IF kd(i,j,k)=143 THEN COLOR 5,6:PRINT CHR$(127):GOTO Etc
IF kd(i,j,k)=142 THEN COLOR 5,6:PRINT CHR$(142):GOTO Etc
PRINT CHR$(kd(i,j,k))
Etc:
NEXT k:NEXT j
Wiederholung:
ta$=INKEY$:IF ta$="" THEN Wiederholung
IF ta$=CHR$(13) THEN duda
GOTO Wiederholung
duda:
SOUND 230,8
NEXT i
COLOR 2,2:CLS:COLOR 1,2:LOCATE 13,5:PRINT"Noch einmal spielen [J oder N] ?"
Taste:
ta$=INKEY$:IF ta$="" THEN Taste
IF ta$="j" THEN Spielbeginn
IF ta$="n" THEN CLS:LOCATE 14,15:PRINT"Tschüß":END
GOTO Taste
SUB Pause STATIC
FOR verz=1 TO 300:NEXT verz
END SUB
SUB LoadFont(FontName$)STATIC
IF pfont& THEN
g&=CloseFont&(pfont&)
END IF
IF FontName$="" THEN FontName$="topaz/8"
i=INSTR(FontName$,"/")
IF i<>0 THEN
a$=LEFT$(FontName$,i-1)+".font"+CHR$(0)
YSize&=VAL(MID$(FontName$,i+1))
TextAttr&(0)=SADD(a$)
TextAtrr&(1)=YSize&*65536
pfont&=OpenDiskFont&(VARPTR(TextAttr&(0)))
IF pfont& THEN
e&=SetFont&(WINDOW(8),pfont&)
END IF
END IF
END SUB